<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>
    <script>
        /* 
            对象中存储属性的区域实际有两个:
                1.对象自身
                    -只通过对象添加的属性,位于对象自身中
                    -在类中通过X = Y 的形式添加的属性,位于对象自身中
                
                2.原型对象(prototype)
                    -喜爱你个中还有一些内容会存储到其他对象里(原形对象)
                    -在对象中会有一个属性用来存储对象,这个属性叫做__proto__
                    -原形对象也会负责为对象存储属性,
                        当我们访问对象中的属性时,会有限访问对象自身的属性,
                        对象自身不包括该属性的时候,才会去原形对象中去寻找
                    -会添加到原形对象中的情况:
                        1.在类中通过XXX(){}方式添加的方法,位于原形中
                        2.主动向原形添加的属性和方法
        */
       class Person{
        name = "GG"
        age = 22
        constructor(){
            console.log("XX"+this.name);
        }
        sayHello(){
            console.log("ni hao");
        }
       }
       const p = new Person()
       console.log(p);
       p.GG = "ee"
       Person.sayHello = () => {
        console.log("GG");
       }
       console.log(p);
       Person.sayHello()
       Person.RR = 22
       console.log(p);
       console.log(p.RR);
      


    </script>
</head>
<body>
    
</body>
</html>